export function cSharpCryptokit (browser) {
  this.browser = browser;
};

cSharpCryptokit.prototype.init = async function () {
   this.cfcaBoundAsync = await CefSharp.BindObjectAsync('cfcaBoundAsync');
};

cSharpCryptokit.prototype.getKitVersion = function () {
  return cfcaBoundAsync.getKitVersion();
};

cSharpCryptokit.prototype.selectCertificate = function (strSubjectDNFilter, strIssuerDNFilter, strSerialNo, strCSPNameList) {
  return cfcaBoundAsync.selectCertificate(strSubjectDNFilter, strIssuerDNFilter, strSerialNo, strCSPNameList);
};

cSharpCryptokit.prototype.getSignCertInfo = function (strInfoType) {
  return cfcaBoundAsync.getSignCertInfo(strInfoType);
};

cSharpCryptokit.prototype.signMsgPKCS1 = function (strSource, strSelectedAlg) {
  return cfcaBoundAsync.signMsgPKCS1(strSource, strSelectedAlg);
};

cSharpCryptokit.prototype.signMsgPKCS7 = function (strSource, strSelectedAlg, bAttached) {
  return cfcaBoundAsync.signMsgPKCS7(strSource, strSelectedAlg, bAttached);
};

cSharpCryptokit.prototype.signFilePKCS7Detached = function (strFile, strSelectedAlg) {
  return cfcaBoundAsync.signFilePKCS7Detached(strFile, strSelectedAlg);
};

cSharpCryptokit.prototype.getLastErrorDesc = function () {
  return cfcaBoundAsync.getLastErrorDesc();
};

cSharpCryptokit.prototype.getIP = function () {
  return cfcaBoundAsync.getIP();
};

cSharpCryptokit.prototype.getMAC = function () {
  return cfcaBoundAsync.getMAC();
};
